package com.linzelin.www;

import com.linzelin.www.util.AccountCharger;
import com.linzelin.www.util.AccountManager;
import com.linzelin.www.util.AccountStudent;
import com.linzelin.www.po.Charger;
import com.linzelin.www.po.Student;

import java.io.IOException;

import java.util.Scanner;

public class Home {
    public static void main(String[] args) throws Exception {

        while(true)
        {
            //初始界面.用于登录设置
            System.out.println("------------------");
            System.out.println("请选择你的角色\n1.学生\n2.主办方\n3.管理员\n4.退出");
            System.out.println("------------------");
            System.out.println("请通过键盘输入数字选择你的角色");
            int select = new Scanner(System.in).nextInt();
            Select1(select);
            break;
        }
        try{//sleep的作用就是暂停指定毫秒数
            Thread.sleep(1000);
            //暂停1000毫秒
        }catch(InterruptedException e){
            System.out.println(e);
        }


    }
    public static void Student1() throws IOException, InterruptedException {
        //学生界面
        AccountStudent As = new AccountStudent();
        System.out.println("------------------");
        System.out.println("欢迎来到学生界面\n请登录或注册你的账号");
        System.out.println("如果没有账号默认为您注册");
        System.out.println("------------------");
        System.out.println("账号:");
        String name = new Scanner(System.in).next();
        System.out.println("密码");
        String cipher = new Scanner(System.in).next();
        System.out.println("------------------");
        Student student = new Student(name,cipher);
        //先将内容保存到一个学生类中,再传递到学生类定义的用户添加界面
        As.UserAdd(student);
    }
    public static void Charger1() throws Exception {
        //负责人界面
        AccountCharger Ac = new AccountCharger();
        System.out.println("------------------");
        System.out.println("你好负责人，请选择登录或是注册账号：\n1.登录\n2.注册");
        System.out.println("------------------");
        int select = new Scanner(System.in).nextInt();
        System.out.println("------------------");
        System.out.println("账号");
        String name = new Scanner(System.in).next();
        System.out.println("密码");
        String cipher = new Scanner(System.in).next();
        Charger charger = new Charger(name,cipher);
        //这里因为都是输入账号和密码,所以进行统一输入,等到进入界面再进行筛选
        switch (select)
        {
            case 1:Ac.Land(charger);break;//1进入登录界面
            case 2:Ac.Logon(charger);break;//2进入注册界面
        }
    }
    public static void Manager1()
    {
        //管理员界面
        AccountManager am = new AccountManager();
        System.out.println("------------------");
        System.out.println("你好管理员，请登录");
        System.out.println("------------------");
        System.out.println("账号");
        String usename = new Scanner(System.in).next();
        System.out.println("密码");
        String password = new Scanner(System.in).next();
        //管理员账号只有一个,因为账号的特殊性,所以比较严格,就不使用任何的类来保存
        am.Function(usename,password);
    }
    public static void Select1(int select) throws Exception {
        //用于在登录的时候作选择用,也可以用在出现错误输入的时候让用户重新输入
        switch (select)
        {
            case 1:Student1();break;
            case 2:Charger1();break;
            case 3:Manager1();break;
            case 4:
                System.out.println("正在退出系统");break;
            default:
                System.out.println("服务选择有误，请重新选择：");
                select = new Scanner(System.in).nextInt();
                Select1(select);
                //用于给用户重新选择用的
                break;
        }
    }

}
